多继承:
使用with后面的类:
被继承的类不能继承其他类
被继承的类中不能有构造函数
with
class X with a,b{
...
}
也可以
class X extends c with a,b{
...
}
抽象类:
抽象类不能实例化,继承必须实现内部抽象方法和属性
抽象类可以继承extends(复用其中普通方法),可以实现implements(当模板)
抽象类中的方法不加abstract
abstract class x{
int a;
int b;
void f(); 抽象方法
void ff(){...}; 普通方法
}
继承该抽象类的类,只用实现抽象方法,普通方法和属性不用重写
多态:父类引用子类,父类的方法引用子类的方法,只能调用父类中存在的方法,不能调用子类中父类没有的方法
Animal c=new Dog(); c只能调用Animal中的方法,且引用子类Dog中的相同方法
接口:
使用abstract定义抽象类为接口,操作和抽象类一样
抽象类的所有属性和函数都必须重写
abstract class x{
int a;
int b;
void f(); 抽象方法
void ff(){...}; 普通方法
}
class c implements x{
int a;
int b;
void f(){}
void ff(){}
}
多接口:
class c implements a,b{...}
代码示例:
void main(){
People p =new People();
p.people();
A a=new A();
a.say();
}
class Eat{
void eat(){
print('eat');
}
}
class Sleep{
void sleep()
{
print('sleep');
}
}
class People with Eat,Sleep{
void people(){
eat();
sleep();
}
}
//抽象
abstract class Animal{
void say();
}
class A extends Animal{
void say(){
print('aa');
}
}