JAVA基础--继承、访问控制
2017-7-6
一、泛化的过程
表示类与类之间的继承关系,接口与接口之间的继承关系。
extends 单继承
class T extends parent
继承中的构造方法
1.构造方法 要么全写(带参数的,不带参数的都添加) 要么不写
2.子类对象构造过程 在子类的构造方法里,编译器会默认添加super(),
调用父类无参的构造方法【要想编译通过,父类的无参的构造方法必须创建】
package zhangyu201776;
public class Foo {
int num;
Foo(){
}
Foo(int num){
}
}
package zhangyu201776;
public class Goo extends Foo {
int value;
Goo(int value){
//super();
//super(1);
this.value=value;
}
}
父类的引用可以指向子类的对象
一个子类的对象可以向上造型为父类的类型
package zhangyu201776;
public class Foo {
int num;
Foo(){
}
Foo(int num){
}
public void f(){
System.out.println("Foo.f");
}
}
package zhangyu201776;
public class Goo extends Foo {
int value;
Goo(){
}
Goo(int value){
//super();
//super(1);
this.value=value;
}
public void g(){
System.out.println("goo.g");
}
}
package zhangyu201776;
public class Test {
public static void main(String[] args){
Goo goo=new Goo();
Foo foo=new Foo();
Foo fo=new Goo();
fo.f();
fo.f();
}
}
package Practice;
public class Sub extends Base {
String color;
public Sub(double size,String name,String color){
super(size,name);
this.color=color;
}
public static void main(String[] args){
Sub s=new Sub(5.6,"测试对象","红色");
System.out.println(s.size+"--"+s.name+"--"+s.color);
}
}
package Practice;
public class Base {
double size;
String name;
public Bas