Рубрики
ООП "Интерфейс" Unity.Project "Adventure Planet"

Защищено: World «большой квадратный Меш»

Это содержимое защищено паролем. Для его просмотра введите, пожалуйста, пароль:

Рубрики
ООП "Интерфейс" Fragments "Unity-C#" test "C#" C# ООП "Свойство"

C# «Получить конвертированное значение свойства экземпляра по имени в интерфейсе»

public interface ITest
{
/// <summary>
/// проверка экземпляра типа Dictionary на заполенность
/// </summary>
public bool Пустой  => System.Convert.ToInt32(this.GetType().GetProperty("Count").GetValue(this))== 0;
}
public class Test:Dictionary<uint,string> ITest{
}
ITest Ex= new Test();
Debug.log(Ex.Пустой);
Рубрики
Метод ООП "Интерфейс" Fragments "Unity-C#" test "C#" C#

C# «Метод интерфейса присваивает значения свойствам без реализации в классе»

using UnityEngine;
namespace test2208041738
{
    public interface ITest
    {
        public byte Prop1
        {
            get;
            set;
        }
        public string Prop2
        {
            get;
            set;
        }
public void Method_props_assign() => this.Method(2, "hello");

public (byte, string) Method(byte Prop1, string Prop2) => (this.Prop1 = Prop1, this.Prop2 = Prop2);
}
    public class Test : ITest
    {
        private byte _prop1;
        private string _prop2;
        
        public byte Prop1
        {
            get => _prop1;
            set => _prop1 = value;
        }
        public string Prop2
        {
            get => _prop2;
            set => _prop2 = value;
        }
        static public void test()
        {
            ITest t = new Test();
            t.Method_props_assign();
            Debug.Log(t.Prop1 + "," + t.Prop2);
        }
    }
}
Рубрики
ООП "Интерфейс" ООП "Абстрактный Класс" различие

ООП «Интерфейс или Абстрактный Класc»

Ссылка

Абстрактный класс

это класс, у которого не реализован один или больше методов некоторые языки требуют такие методы помечать специальными ключевыми словами

Интерфейс

это абстрактный класс, у которого ни один метод не реализован, все они публичные и нет переменных класса.

Интерфейс нужен обычно когда описывается только интерфейс (тавтология). Например, один класс хочет дать другому возможность доступа к некоторым своим методам, но не хочет себя «раскрывать». Поэтому он просто реализует интерфейс.

Абстрактный класс нужен, когда нужно семейство классов, у которых есть много общего. Конечно, можно применить и интерфейс, но тогда нужно будет писать много идентичного кода в некоторых языках (С++) специального ключевого слова для обозначения интерфейсов нет.

Можно считать, что любой интерфейс — это уже абстрактный класс, но не наоборот.

Рубрики
ООП "Сlass" JavaScript основы

Class

  • не наследуемый класс с именем Class1 без объявленных полей
Class1:Class {
}
  • не наследуемый класс с именем Class1 с объявленным полем внутри конструктора и обращением снаружи через get и set
Class1:Class {
 get Field(){
  return this.field;
 }
 set Field(val){
  this.field=val;
 }
 constructor(atr){
  this.field=atr;
 }
} 
  • наследование
    дочерний класс относительно другого класса
Animal:Class {
 constructor(name){
  this.name=name;
 }
 speak(){
  console.log(`${this.name} издаёт звук.`);
 }
}
Class Dog extends Animal {
  constructor(name){
  //вызывает конструктор super класса и передаёт параметр name 
  super(name); 
  }

  speak() {
    console.log(`${this.name} лает.`);
  }
}
let d = new Dog ('Митци');
d.speak(); // Митци лает