![个人头像照片](https://ucc.alicdn.com/avatar/avatar3.jpg)
暂无个人介绍
是不正确的,子类可以是抽象类,可以实现父类全部抽象方法,也可以实现部份方法,或者建立自己的方法。
类实例化就是新建一个类的对象,就是new一个对象
类名 对象名 = new 类名();
例子:Student stu = new Student();
类在没有实例化之前,就是new之前,它的属性,方法等等在内存中都是不存在的.只有new了以 后,这个类的一些东西在内存中才会真的存在,也就是说只有new了之后,这个类才能用
不能多继承是单继承的局限。另外会是两个类的耦合性增加,其中父类有改动的话会直接影响子类。
作用:弥补多继承性的不足。
作用: 抽象类是指通常在编程语句中用 abstract 修饰的类。在C++中,含有纯虚拟函数的类称为抽象类,它不可以生成对象;其中在java中来说,含有抽象方法的类称为抽象类,也是不能生成对象的。
给大家举个案例:
不确定具体的实现,但是行为应该定义好
public abstract void eat();
public abstract void sleep();
public abstract void work();
}
class Human extends Action{
public abstract void eat();
System.out.println(“人吃饭需要吃熟食,干净的食物”);
}
public abstract void sleep();
System.out.println(“人困了就要睡觉”);
}
public abstract void work();
System.out.println(“人要努力拼搏”);
}
class Pig extends Action {
public abstract void eat();
System.out.println(“猪用槽子吃。吃糠”);
}
public abstract void sleep();
System.out.println(“猪在圈里睡”);
}
public abstract void work();
}
class Robot extends Action {
public abstract void eat();
System.out.println(“机器人补充能量”);
}
public abstract void sleep();
public abstract void work();
System.out.println(“机器人不停工作”);
}
}
public class TestDemo {
public static void main(String args[]){
}
}
范例:调用行为
public static void main(String args[]){
fun(new Human());
fun(new Pig());
fun(new Robot());
}
public static void fun(Action action){
action.command(Action.EAT + Action.SLEEP + Action.WORK);
}
}
特定的指令是:它是指对某一种特定的行为起作用的指令。
作用:在一定方面上在执行命令上起到了简化便捷的作用。
在开发的过程中,需要对某些操作和过程做一些指令的步骤操作。其中最具代表性的就是后面要学到的Servlet。
调用行为:
public static void main(String args[]){
fun(new Human());
fun(new Pig());
fun(new Robot());
}
public static void fun(Action action){
action.command(Action.EAT + Action.SLEEP + Action.WORK);
}
}
使用父类的方法:
1.self.run()如果自己有run方法,那么调用的就是自己的, 因为使用self调用父类方法就不可以有和父类同名的方法,要遵循mro顺序。
2.父类名.run(self) 需要自己传入参数self这是self要注意的一点。
3.super super(父类名,self).run(参数1,参数2) super().run(参数1,参数2)。
不会有反应。
原因是因为缺少支持的话,这个命令就无法正常运转。
抽象类的特点:
A:类或者方法都必须用abstract修饰。
B:具体类的在继承抽象类的时候
C:抽象类不能实例化。要想使用,必须按照多态的方式。
D:成员特点
固化的模式:
它只能接收几种特定的指令。