abstract class YuanGong {
private String name ;
String Id ="001";
double salary=3.141592653546264;
YuanGong(){}
YuanGong(String name,String Id ,double salary){
this.name = name ;
this.Id = Id;
this.salary =salary;
}
public void setName (String name){
this.name =name;
}
public String getName(){
return name;
}
public void show(){
System.out.println("经理的名字:"+name+"编号:"+Id+"薪水:"+salary);
}
public abstract void Gan();
}
public class JingLi extends YuanGong {
JingLi (){}
JingLi (String name ,String Id,double salary){
super (name,Id,salary);
}
public void Gan(){
System.out.println("经理安排工作");
}
public class CheShi {
public static void main(String[] args) {
JingLi j = new JingLi("元哥吉祥","001",3333.1);
YuanGong y = new JingLi (); //父类引用指向子类对象
j.Gan();
j.show();
}
}
abstract class Animal {
private String name ; //成员变量
private int age ;
Animal (){}
Animal (String name ,int age){
this .name = name ;
this.age = age;
}
public void setName (String name){
this. name = name ;
}
public String getName (){
return name ;
}
public void setAge (int age){
this. age = age ;
}
public int getAge (){
return age ;
}
public abstract void eat ();//抽象方法
public abstract void sleep ();
// 接口
interface Jump{
public abstract void jump();
}
}
public class Dog extends Animal {
public void eat (){ //子类重写父类的抽象方法, 为多态
System.out.println("狗吃肉,吃的老香了。");
}
public void sleep(){
System.out.println("狗睡觉梦游");
}
}
import duotaitext.Animal.Jump;
//实现接口
public class MiaoXingRen extends Dog implements Jump {
public void jump (){
System.out.println("狗 跑的飞快");
}
}
public class AnimalDemo {
public static void main(String[] args) {
Dog g = new Dog ();
g.eat();
g.sleep();
System.out.println();
MiaoXingRen m = new MiaoXingRen ();
m.jump();
}
}
//多态
public class Fu {
int num =10; //成员变量
public void show (){
System.out.println("fu show");
}
public static void show2(){
System.out.println("fu show --2");
}
}
public class Zi extends Fu {
int num =20;
public void show (){
System.out.println("zi show"); //多态要有继承,方法重写
}
public static void show2 (){
System.out.println("zi show ---2");
}
}
public class FuTest {
public static void main(String[] args) {
Fu f = new Zi (); //父类的引用指向子类的对象
System.out.println(f.num ); //父类的十
f.show(); //子类覆盖了父的方法
f.show2(); //父类不能调用子类独有的功能
Zi z =(Zi)f;
z.show2(); //强转之后,才能得出, 拿到, 子类独有的方法, 。
}
}
超人英雄:
public class Person {
String name ="斯塔克"; //成员变量。 父类
public void Zheng(){
System.out.println("开公司挣钱"); //父类的成员方法
}
}
public class BianShen extends Person{
String name = "钢铁侠"; // 子类要继承父类的 成员变量 和成员方法
public void Zheng (){
System.out.println("拍张照片。 赚点小钱");
}
public void JiuRen(){
System.out.println("救小孩");// 子类扩展的功能
}
public void Fei (){
System.out.println("飞");
}
}
public class PsersonTest {
public static void main(String[] args) {
Person p = new BianShen (); //父类引用指向 子类对象, 多态
System.out.println(p.name); //父类成员变量
p.Zheng(); //子类覆盖了父类的成员方法 。 子类不能覆盖父类的成员变量, 可以覆盖成员方法
BianShen b = new BianShen ();
System.out.println(b.name);
b.JiuRen();
b.Fei();
}
}
动物://父类
public class Animal {
private String name ;
private int age ;
Animal (){}
Animal (String name ,int age ){
this.name = name ;
this.age = age ;
}
public void setName (String name){
this. name = name ;
}
public String getName (){
return name ;
}
public void setAge (int age){
this. age =age ;
}
public int getAge (){
return age;
}
public void sleep (){
System.out.println("动物都睡觉:");
}
public void eat (){
System.out.println("动物都吃");
}
}
//子类
public class Dog extends Animal{
public void eat(){
System.out.println("哈士奇吃饭");
}
public void sleep (){
System.out.println("哈士奇 睡觉");
}
public void da(){
System.out.println("打呼噜");
}
}
//子类
public class Cat extends Animal {
public void eat (){
System.out.println("加菲猫吃");
}
public void sleep (){
System.out.println("加菲猫睡觉");
}
}
public class AnimalTest {
public static void main(String[] args) {
Dog g = new Dog ();
g.eat();
g.sleep();
g.setAge(10);
g.setName("饭团");
System.out.println(g.getAge()+g.getName());
Animal a =new Dog ();
Dog z = (Dog)a; //父类想要拿子类的对像, 就必须向下转型。 做强转
z.da();
}